package k.aicodeback.ai;

import dev.langchain4j.model.input.Prompt;
import dev.langchain4j.service.SystemMessage;
import k.aicodeback.ai.model.HtmlCodeResult;
import k.aicodeback.ai.model.MultiFileCodeResult;
import reactor.core.publisher.Flux;

public interface GeneRacTerCodeService {
    /**
     * ai生成单页面html文件
     * @param message
     * @return
     */
    @SystemMessage(fromResource = "prompt/html-code-prompt.txt")
    HtmlCodeResult generacterHtmlCode(String message);

    /**
     * ai生成多文件页面
     * @param message
     * @return
     */
    @SystemMessage(fromResource = "prompt/mult-code-prompt.txt")
    MultiFileCodeResult generacterMultCode(String message);

    /**
     * 生成 HTML 代码（流式）
     *
     * @param userMessage 用户消息
     * @return 生成的代码结果
     */
    @SystemMessage(fromResource = "prompt/html-code-prompt.txt")
    Flux<String> generateHtmlCodeStream(String userMessage);

    /**
     * 生成多文件代码（流式）
     *
     * @param userMessage 用户消息
     * @return 生成的代码结果
     */
    @SystemMessage(fromResource = "prompt/mult-code-prompt.txt")
    Flux<String> generateMultiFileCodeStream(String userMessage);

}
